package com.heifeng.cloudshelf.utils;

public class GdLocationUtils {

//    private AMapLocationClient locationClient = null;
//    private AMapLocationClientOption locationOption = null;
//    private OnLocationCallBack onLocationCallBack;
//
//    /**
//     * 定位监听
//     */
//    AMapLocationListener locationListener = new AMapLocationListener() {
//        @Override
//        public void onLocationChanged(AMapLocation location) {
//            if (null != onLocationCallBack) {
//                if (null != location) {
////                //errCode等于0代表定位成功，其他的为定位失败，具体的可以参照官网定位错误码说明
//                    if (location.getErrorCode() == 0) {
//                        onLocationCallBack.onLocationSuccess(GdLocationUtils.this, new LocationData(location.getErrorCode(), location.getLocationType(),
//                                location.getLongitude(), location.getLatitude(), location.getAccuracy(), location.getCountry(), location.getProvince()
//                                , location.getCity(), location.getDistrict(), location.getAddress()));
//                    } else {
////                    //定位失败
//                        onLocationCallBack.onLocationError(GdLocationUtils.this, location.getErrorCode(), "Location fail -- info:" + location.getErrorInfo() + "\n detail:" + location.getLocationDetail());
//                    }
//                } else {
//                    onLocationCallBack.onLocationError(GdLocationUtils.this, -1, "Location fail，location is null ---time:" + System.currentTimeMillis());
//                }
//            }
//        }
//    };
//
//    public GdLocationUtils(Context context) {
//        initLocation(context);
//    }
//
//    public GdLocationUtils(Context context, OnLocationCallBack onLocationCallBack) {
//        initLocation(context);
//        this.onLocationCallBack = onLocationCallBack;
//    }
//
//    public void setOnLocationCallBack(OnLocationCallBack onLocationCallBack) {
//        this.onLocationCallBack = onLocationCallBack;
//    }
//
//    /**
//     * 初始化定位
//     *
//     * @author hongming.wang
//     * @since 2.8.0
//     */
//    private void initLocation(Context context) {
//        //初始化client
//        locationClient = new AMapLocationClient(context);
//        locationOption = getDefaultOption();
//        //设置定位参数
//        locationClient.setLocationOption(locationOption);
//        // 设置定位监听
//        locationClient.setLocationListener(locationListener);
//    }
//
//    /**
//     * 默认的定位参数
//     *
//     * @author hongming.wang
//     * @since 2.8.0
//     */
////    private AMapLocationClientOption getDefaultOption() {
////        AMapLocationClientOption mOption = new AMapLocationClientOption();
////        mOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);//可选，设置定位模式，可选的模式有高精度、仅设备、仅网络。默认为高精度模式
////        mOption.setGpsFirst(false);//可选，设置是否gps优先，只在高精度模式下有效。默认关闭
////        mOption.setHttpTimeOut(30000);//可选，设置网络请求超时时间。默认为30秒。在仅设备模式下无效
////        mOption.setInterval(2000);//可选，设置定位间隔。默认为2秒
////        mOption.setNeedAddress(true);//可选，设置是否返回逆地理地址信息。默认是true
////        mOption.setOnceLocation(false);//可选，设置是否单次定位。默认是false
////        mOption.setOnceLocationLatest(false);//可选，设置是否等待wifi刷新，默认为false.如果设置为true,会自动变为单次定位，持续定位时不要使用
////        AMapLocationClientOption.setLocationProtocol(AMapLocationClientOption.AMapLocationProtocol.HTTP);//可选， 设置网络请求的协议。可选HTTP或者HTTPS。默认为HTTP
////        mOption.setSensorEnable(false);//可选，设置是否使用传感器。默认是false
////        mOption.setWifiScan(true); //可选，设置是否开启wifi扫描。默认为true，如果设置为false会同时停止主动刷新，停止以后完全依赖于系统刷新，定位位置可能存在误差
////        mOption.setLocationCacheEnable(true); //可选，设置是否使用缓存定位，默认为true
////        mOption.setGeoLanguage(AMapLocationClientOption.GeoLanguage.DEFAULT);//可选，设置逆地理信息的语言，默认值为默认语言（根据所在地区选择语言）
////        return mOption;
////    }
//
//    /**
//     * 开始定位
//     *
//     * @author hongming.wang
//     * @since 2.8.0
//     */
//    public void startLocation() {
//        //根据控件的选择，重新设置定位参数
//        Log.e("Location", "startLocation");
//        // 设置定位参数
//        locationClient.setLocationOption(locationOption);
//        // 启动定位
//        locationClient.startLocation();
//    }
//
//    /**
//     * 停止定位
//     *
//     * @author hongming.wang
//     * @since 2.8.0
//     */
//    public void stopLocation() {
//        // 停止定位
//        locationClient.stopLocation();
//    }
//
//    /**
//     * 销毁定位
//     *
//     * @author hongming.wang
//     * @since 2.8.0
//     */
//    public void destroyLocation() {
//        if (null != locationClient) {
//            /**
//             * 如果AMapLocationClient是在当前Activity实例化的，
//             * 在Activity的onDestroy中一定要执行AMapLocationClient的onDestroy
//             */
//            locationClient.onDestroy();
//            locationClient = null;
//            locationOption = null;
//        }
//    }
//
//    public static class LocationData {
//        private int errorCode;
//
//        private int locationType;
//        private double longitude;
//        private double latitude;
//        private float accuracy;
//
//        private String country;
//        private String province;
//        private String city;
//        private String district;
//        private String address;
//
//        public LocationData(int errorCode, int locationType, double longitude, double latitude, float accuracy, String country, String province, String city, String district, String address) {
//            this.errorCode = errorCode;
//            this.locationType = locationType;
//            this.longitude = longitude;
//            this.latitude = latitude;
//            this.accuracy = accuracy;
//            this.country = country;
//            this.province = province;
//            this.city = city;
//            this.district = district;
//            this.address = address;
//        }
//
//        public int getErrorCode() {
//            return errorCode;
//        }
//
//        public int getLocationType() {
//            return locationType;
//        }
//
//        public double getLongitude() {
//            return longitude;
//        }
//
//        public double getLatitude() {
//            return latitude;
//        }
//
//        public float getAccuracy() {
//            return accuracy;
//        }
//
//        public String getCountry() {
//            return country;
//        }
//
//        public String getProvince() {
//            return province;
//        }
//
//        public String getCity() {
//            return city;
//        }
//
//        public String getDistrict() {
//            return district;
//        }
//
//        public String getAddress() {
//            return address;
//        }
//
//
//        @Override
//        public String toString() {
//            return "LocationData{" +
//                    "errorCode=" + errorCode +
//                    ", locationType=" + locationType +
//                    ", longitude=" + longitude +
//                    ", latitude=" + latitude +
//                    ", accuracy=" + accuracy +
//                    ", country='" + country + '\'' +
//                    ", province='" + province + '\'' +
//                    ", city='" + city + '\'' +
//                    ", district='" + district + '\'' +
//                    ", address='" + address + '\'' +
//                    '}';
//        }
//    }
//
//    public interface OnLocationCallBack {
//        void onLocationSuccess(GdLocationUtils gdLocationUtils, LocationData locationData);
//
//        void onLocationError(GdLocationUtils gdLocationUtils, int errorCode, String info);
//    }
}
